$().ready(function() {
	validateRule();
});

$.validator.setDefaults({
	submitHandler : function() {
		save();
	}
});
function getCheckedRoles() {
	var adIds = "";
	$("input:checkbox[name=role]:checked").each(function(i) {
		if (0 == i) {
			adIds = $(this).val();
		} else {
			adIds += ("," + $(this).val());
		}
	});
	return adIds;
}
function save() {
	getKey();
	var pwd = encrypt($("#password").val());
	$("#roleIds").val(getCheckedRoles());
	$.ajax({
		cache : true,
		type : "POST",
		url : ctx+"sys/user/save",
		data : {
			name : $("#name").val(),
			username : $("#username").val(),
			password :pwd,
			deptId : $("#deptId").val(),
			email : $("#email").val(),
			status : $("input[name='status']:checked").val(),
			roleIds : $("#roleIds").val()
		},
		async : false,
		error : function(request) {
			parent.layer.alert("Connection error");
		},
		success : function(data) {
			if (data.code == 0) {
				parent.layer.msg("操作成功");
				parent.reLoad();
				var index = parent.layer.getFrameIndex(window.name); // 获取窗口索引
				parent.layer.close(index);

			} else {
				parent.layer.alert(data.msg)
			}

		}
	});

}
function validateRule() {
	var icon = "<i class='fa fa-times-circle'></i> ";
	$("#signupForm").validate({
		rules : {
			name : {
				required : true
			},
			username : {
				required : true,
				minlength : 2,
				remote : {
					url : ctx+"sys/user/exit", // 后台处理程序
					type : "post", // 数据发送方式
					dataType : "json", // 接受数据格式
					data : { // 要传递的数据
						username : function() {
							return $("#username").val();
						}
					}
				}
			},
			password : {
				required : true,
				checkPWD:true
			},
			// confirm_password : {
			// 	required : true,
			// 	minlength : 6,
			// 	equalTo : "#password"
			// },
			// email : {
			// 	required : true,
			// 	email : true
			// },
			topic : {
				required : "#newsletter:checked",
				minlength : 2
			},
			agree : "required"
		},
		messages : {

			name : {
				required : icon + "请输入姓名"
			},
			username : {
				required : icon + "请输入您的用户名",
				minlength : icon + "用户名必须两个字符以上",
				remote : icon + "用户名已经存在"
			},
			password : {
				required : icon + "请输入您的密码"
				// minlength : icon + "密码必须6个字符以上"
			},
			// confirm_password : {
			// 	required : icon + "请再次输入密码",
			// 	minlength : icon + "密码必须6个字符以上",
			// 	equalTo : icon + "两次输入的密码不一致"
			// },
			//email : icon + "请输入您的E-mail",
		}
	})

	jQuery.validator.addMethod("checkPWD", function(value, element) {

		var userblank = /^(?![A-Za-z0-9]+$)(?![a-z0-9\W]+$)(?![A-Za-z\W]+$)(?![A-Z0-9\W]+$)[a-zA-Z0-9\W]{12,20}$/;
		return this.optional(element) ||(userblank.test(value));
	}, "密码必须12-20位字符 必须包含字母大小写 数字 标点符号");
}

var openDept = function(){
	layer.open({
		type:2,
		title:"选择部门",
		area : [ '300px', '450px' ],
		content:ctx+"system/sysDept/treeView"
	})
}
function loadDept( deptId,deptName){
	$("#deptId").val(deptId);
	$("#deptName").val(deptName);
}

function getKey(){
	$.ajax({
		type: "GET",
		url: ctx+"/wxs/getKey",
		async: false,
		success: function (r) {
			secret = r;
		}
	});
}

/**
 * 加密（需要先加载lib/aes/aes.min.js文件）
 * @param word
 * @returns {*}
 */
function encrypt(word){
	var key = CryptoJS.enc.Utf8.parse(secret);
	var srcs = CryptoJS.enc.Utf8.parse(word);
	var encrypted = CryptoJS.AES.encrypt(srcs, key, {mode:CryptoJS.mode.ECB,padding: CryptoJS.pad.Pkcs7});
	return encrypted.toString();
}